﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SQLite;
using Zimmerreservierung.Model;

namespace Zimmerreservierung.Forms
{
    public partial class FormZimmerBearbeiten : FormZimmerNeu
    {
        private Zimmer zimmer;
        public FormZimmerBearbeiten(SQLiteConnection connection, Zimmer zimmer): base(connection)
        {
            InitializeComponent();
            this.Text = "Zimmer Bearbeiten";
            txtName.Text = zimmer.Name;
            txtBelegung.Text = zimmer.Belegzahl.ToString();
            txtErw.Text = zimmer.Erwachsener.ToString();
            txt2Erw.Text = zimmer.ZweiErwachsene.ToString();
            txt3Erw.Text = zimmer.DreiErwachsene.ToString();
            txtErwKind.Text = zimmer.ErwachsenerKind.ToString();
            txtErw2Kind.Text = zimmer.ErwachsenerZweiKinder.ToString();
            txt2ErwKind.Text = zimmer.ZweiErwachseneKind.ToString();
            
            label1.Text = "Zimmer bearbeiten";
            this.zimmer = zimmer;
        }

        internal override void StoreZimmer(string name, int belegzahl, double erw, double _2erw, double _3erw, double erwKind, double erw2kind, double _2erwKind)
        {
            // update instead of insert
            try
            {
                connection.Open();
                using (SQLiteCommand command = new SQLiteCommand(connection))
                {
                    command.CommandText = string.Format("UPDATE Zimmer SET Name='{0}', MaxBelegzahl = {1}, PreisEZ='{2}', PreisDZ='{3}',"
                                                        + " PreisDreifachZ='{4}', PreisEZmitKind='{5}', PreisEZmit2Kind='{6}',"
                                                        + " PreisDZmitKind='{7}' "
                                                        + "WHERE ID = {8};",name, belegzahl,erw, _2erw, _3erw, erwKind, erw2kind, _2erwKind, zimmer.Id );
                    command.ExecuteNonQuery();

                    /*
                     * ing.Format("INSERT INTO Zimmer (ID, Name, MaxBelegzahl, PreisEZ, PreisDZ, PreisDreifachZ, PreisEZmitKind, PreisEZmit2Kind, PreisDZmitKind ) "
                                                + "VALUES (NULL, '{0}', {1}, '{2}', '{3}', '{4}', '{5}', '{6}', '{7}' );",name, belegzahl, erw, _2erw, _3erw, erwKind, erw2kind, _2erwKind);
                     * */
                }
                connection.Close();

                MessageBox.Show("Zimmer erfolgreich aktualisiert.");
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
    }
}
